package dbmodel

const (
	RoleSuperAdmin = 1                                  // 超级管理员角色ID
	RoleAdmin      = 2                                  // 管理员角色ID
	RoleUser       = 3                                  // 前台用户角色ID
	SuperAdminCard = "728ddea96bc95c0792f52dd434910a77" // 超级管理员唯一卡密,注册生成管理员账号用
)

// 用户表
type User struct {
	Model
	AvatarUrl     string `gorm:"type:varchar(255);not null;default:'';comment:头像;" json:"avatarUrl"`               // 头像
	UserName      string `gorm:"type:varchar(100);not null;default:'';comment:用户昵称;" json:"userName"`              // 用户昵称
	Password      string `gorm:"type:varchar(100);not null;default:'';comment:用户密码;" json:"password"`              // 用户密码
	CardId        uint   `gorm:"type:int(11);not null;default:0;comment:卡密id;" json:"cardId"`                      // 卡密id
	Status        uint   `gorm:"type:tinyint(4);not null;default:0;comment:状态1正常2拉黑3冻结;" json:"status"`            // 状态1正常2拉黑3冻结
	InviteCode    string `gorm:"type:varchar(10);not null;default:'';comment:邀请码;" json:"inviteCode"`              // 邀请码
	InviteId      uint   `gorm:"type:tinyint(11);not null;default:0;comment:邀请人id;" json:"inviteId"`               // 邀请人id
	OnlineStatus  uint   `gorm:"type:tinyint(4);not null;default:0;comment:在线状态 0离线 1在线;" json:"onlineStatus"`     // 在线状态
	LoginDays     uint   `gorm:"type:int(11);not null;default:0;comment:登录天数;" json:"loginDays"`                   // 登录天数
	LastLoginTime string `gorm:"type:varchar(100);not null;default:'';comment:最后登录时间;" json:"lastLoginTime"`       // 最后登录时间
	RegisterIp    string `gorm:"type:varchar(100);not null;default:'';comment:注册ip;" json:"registerIp"`            // 注册ip
	LastLoginIp   string `gorm:"type:varchar(100);not null;default:'';comment:最后登录ip;" json:"lastLoginIp"`         // 最后登录ip
	QrCodeUrl     string `gorm:"type:varchar(255);not null;default:'';comment:收款二维码图片;" json:"qrCodeUrl"`          // 收款二维码图片
	RoleId        uint   `gorm:"type:int(11);not null;default:0;comment:角色id 1-超级管理员 2-管理员 3-前台用户;" json:"roleId"` // 角色ID 1-超级管理员 2-管理员 3-前台用户
	ControlBy
}

// 卡密表
type Carmine struct {
	Model
	Carmine string `gorm:"type:varchar(100);not null;default:'';comment:卡密;" json:"carmine"`                  // 卡密
	Status  int    `gorm:"type:tinyint(1);not null;default:0;comment:卡密状态 0:未使用 1:已使用 2:禁止使用;" json:"status"` // 卡密状态
	UserId  uint   `gorm:"type:int(11);not null;default:0;comment:用户id;" json:"userId"`                       // 绑定用户id
	Remark  string `gorm:"type:varchar(255);not null;default:'';comment:备注;" json:"remark"`                   // 备注
	Ip      string `gorm:"type:varchar(20);not null;default:'';comment:使用ip;" json:"ip"`                      // 使用ip
	ControlBy
}
